#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>





//int g_val = 100;
//
//int main()
//{
//    pid_t id = fork();
//
//    if(id == 0)
//    {
//        int i = 0;
//        while(1)
//        {
//            i++;
//            printf("I am process,pid:[%d],ppid:[%d],g_val:[%d],g_val addr:[%p]\n",getpid(),getppid(),g_val,&g_val);
//            if(i == 5)
//            {
//                g_val = 9999;
//            }
//            sleep(1);
//        }
//    }
//    else if(id > 0)
//    {
//       printf("I am process,pid:[%d],ppid:[%d],g_val:[%d],g_val addr:[%p]\n",getpid(),getppid(),g_val,&g_val);
//       sleep(1);
//    }
//
//    return 0;
//}




//int g_un_val;
//
//int g_val = 100;
//
//int main(int argc,char* argv[],char* envp[])
//{
//    const char* str = "hello";
//    char *p = (char*)malloc(100);
//
//    printf("code addr:     %p\n",main);
//    printf("read only addr:%p\n",str);
//    printf("init addr:     %p\n",&g_val);
//    printf("uninit addr:   %p\n",&g_un_val);
//    printf("heep addr:     %p\n",p);
//    printf("stack addr:    %p\n",&p);
//    printf("stack addr:    %p\n",&str);
//    
//    for(int i = 0;i<argc;i++)
//    {
//        printf("args addr:     %p\n",argv[i]);
//    }
//
//    printf("env addr:      %p\n",envp[0]);
//
//    return 0;
//}
